/**********************************************************************************************************

			           							
  * File    : stm32f103bsp_def.h
  * By      : luofei
  * Version : V1.0
  * time    : 2013/01/16
***********************************************************************************************************/

#ifndef STM32F103_BSP_DEF_H
#define STM32F103_BSP_DEF_H


/*****************************************************
*	include sys conf headfile
******************************************************/
#include "../../sys_inc/stm32f103_sysinc.h"

/*****************************************************
*	include stm32f103 driver headfile
******************************************************/
#include "../../lib_inc/stm32f103_driver/stm32f10x_inc.h"

#define bsp_assert( expr )     assert_param( expr )

#define  DEF_BIT_SET(val, mask)                        { (val) |=  (mask); }
#define  DEF_BIT_MASK(bit_mask, bit_shift)             ((bit_mask)       << (bit_shift))
#define  DEF_BIT(bit)                                  (1u << (bit))
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////

#ifdef  BSP_OS_EN 
/*****************************************************
*	include os headfile
******************************************************/
#include "../../lib_inc/stm32f103_ucosii/src_rtos_inc.h"


#define cpu_alloc()         OS_SR_ALLOC()
#define cpu_lock()			OS_ENTER_CRITICAL()
#define cpu_unlock()		OS_EXIT_CRITICAL()

#define os_lock()			OSSchedLock()
#define os_unlock()			OSSchedUnlock()

#define cpu_enter_int()     OSIntEnter()
#define cpu_exit_int()		OSIntExit()

#define cpu_int_dis()       CPU_IntDis()
#define cpu_int_ena()		CPU_IntEna()

#else

#define cpu_alloc()         
#define cpu_lock()			
#define cpu_unlock()		

#define os_lock()			
#define os_unlock()			

#define cpu_enter_int()     
#define cpu_exit_int()		


#define cpu_int_dis()       
#define cpu_int_ena()		


#endif





//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
typedef            void      (*CPU_FNCT_VOID)( void  ); 
typedef            void      (*CPU_FNCT_PARA)( void *);

//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////


#endif
